Structure of the model
ARCA box consists of two somewhat independent parts, the graphical user interface (GUI) and the numerical model.
Independence means that the numerical model can be run even if the GUI is not installed (on the other hand the simulations can be configured, or output examined with the GUI without the Fortran model).
The main function of the GUI is to create the necessary initialization file (from here on referred as INITFILE)Storing settings - INITFILE, where the settings are passed to the model (using Fortran namelist) variables. GUI presents all the available model settings, contains tools to create parametric input, enables the user to save and load different model settings and inspect model output.
Fortran model
This is where the actual science is done. Broadly speaking the Fortran model consists of three main stages:
- Reading of input and initializing the program variables,
- integration loops over the time of study, and
- saving data from these loops.
Python User interface
For the most part this manual concentrates on the user interface. The GUI interacts with the Fortran model mainly via input and output files, most importantly via the initialization file which we refer to as INITFILE. The model can also be run from the user interface, and in this case the screen output during the simulation is passed to the GUI via terminal output (meaning that screen stdout is directed to GUI, which will show it).
Schematic representation of ARCA box. The green rectangle contains the Fortran part of the model, darker shade green boxes contain the modules, the purple box the Python graphical user interface (GUI). Purple arrows show where the interaction between the GUI and Fortran executable takes place. GUI interacts with the Fortran model by writing the INITFILE (top purple arrow), repeating the screen output of the model (middle purple arrow) and plotting the output data (bottom purple arrow). The dashed purple rectangle is the minimal configuration of ARCA, INPUT data is not strictly necessary as parametric input can also be used.